package com.itlong.cloud.property.dao;

import com.itlong.cloud.POJO.PO.DeviceMediaPadFaceRecognitionPO;
import com.itlong.cloud.POJO.VO.property.DeviceMediaBindAddressVO;
import com.itlong.cloud.abstracts.IAbstractBaseDao;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *     平板人脸识别多媒体服务设备信息持久层对象
 * </desc>
 *
 * @createDate 2018/05/14
 */
@Mapper
@Repository
public interface IDeviceMediaPadFaceDao extends IAbstractBaseDao<DeviceMediaPadFaceRecognitionPO> {

    /**
     * <desc>
     *     批量保存人脸识别设备-多媒体资源关联信息
     * </desc>
     *
     * @param batchParams 待保存的人脸识别设备-多媒体资源关联信息
     * @return 受影响的行数
     * @author wangzhi
     * @createDate 2018/05/14
     */
    Integer batchSave(List<Map<String,Object>> batchParams);

    /**
     * <desc>
     *     获取多媒体资源关联的人脸识别云电梯设备
     * </desc>
     *
     * @param mediaId 多媒体资源id
     * @return 关联的人脸识别云电梯设备列表
     * @author wangzhi
     * @createDate 2018/05/15
     */
    List<DeviceMediaBindAddressVO> getMediaBindCloudElevators(@Param("mediaId") String mediaId);

    /**
     * <desc>
     *     获取多媒体资源关联的人脸识别云门禁设备
     * </desc>
     *
     * @param mediaId 多媒体资源id
     * @return 关联的人脸识别云门禁设备列表
     * @author wangzhi
     * @createDate 2018/05/15
     */
    List<DeviceMediaBindAddressVO> getMediaBindCloudEntrance(@Param("mediaId") String mediaId);

    /**
     * <desc>
     *     获取多媒体资源关联的一体式人脸识别门禁设备
     * </desc>
     *
     * @param mediaId 多媒体资源id
     * @return 关联的一体式人脸识别门禁设备列表
     * @author Qiang.S
     * @createDate 2020/06/01
     */
    List<DeviceMediaBindAddressVO> getMediaBindCloudUnibodyEntrance(@Param("mediaId") String mediaId);

    /**
     *<desc>
     *     物理删除指定多媒体资源id绑定的平板人脸识别设备
     *</desc>
     *
     * @param mediaId 多媒体资源id
     * @return
     * @author wangzhi
     * @createDate 2018/05/15
     */
    Integer removeOne(@Param("mediaId") String mediaId);

    /**
     *<desc>
     *     物理删除指定多媒体资源id绑定的一体式人脸识别门禁
     *</desc>
     *
     * @param mediaId 多媒体资源id
     * @return
     * @author wangzhi
     * @createDate 2018/05/15
     */
    Integer removeUnibodyEntranceOne(@Param("mediaId") String mediaId);
}
